{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-platform-htmlsanitizer",
      "artifactVersion": "9.10",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.admin.center",
          "org.nuxeo.admin.center.analytics.dashboards",
          "org.nuxeo.admin.center.jsf",
          "org.nuxeo.admin.center.monitoring",
          "org.nuxeo.admin.center.oauth.opensocial",
          "org.nuxeo.apidoc.core",
          "org.nuxeo.apidoc.repo",
          "org.nuxeo.apidoc.webengine",
          "org.nuxeo.connect.client.wrapper",
          "org.nuxeo.connect.update",
          "org.nuxeo.directory.mongodb",
          "org.nuxeo.ecm.actions",
          "org.nuxeo.ecm.actions.jsf",
          "org.nuxeo.ecm.audit.io",
          "org.nuxeo.ecm.content.showcase",
          "org.nuxeo.ecm.default.config",
          "org.nuxeo.ecm.permissions",
          "org.nuxeo.ecm.platform",
          "org.nuxeo.ecm.platform.api",
          "org.nuxeo.ecm.platform.audio.core",
          "org.nuxeo.ecm.platform.audio.jsf",
          "org.nuxeo.ecm.platform.collections.core",
          "org.nuxeo.ecm.platform.collections.jsf",
          "org.nuxeo.ecm.platform.commandline.executor",
          "org.nuxeo.ecm.platform.content.template",
          "org.nuxeo.ecm.platform.contentview.jsf",
          "org.nuxeo.ecm.platform.convert",
          "org.nuxeo.ecm.platform.dublincore",
          "org.nuxeo.ecm.platform.htmlsanitizer",
          "org.nuxeo.ecm.platform.importer.core",
          "org.nuxeo.ecm.platform.importer.jaxrs",
          "org.nuxeo.ecm.platform.lang",
          "org.nuxeo.ecm.platform.login",
          "org.nuxeo.ecm.platform.login.cas2",
          "org.nuxeo.ecm.platform.login.default",
          "org.nuxeo.ecm.platform.login.digest",
          "org.nuxeo.ecm.platform.login.shibboleth",
          "org.nuxeo.ecm.platform.login.token",
          "org.nuxeo.ecm.platform.login.token.jsf",
          "org.nuxeo.ecm.platform.mail",
          "org.nuxeo.ecm.platform.mail.types",
          "org.nuxeo.ecm.platform.mail.web",
          "org.nuxeo.ecm.platform.marketplace-nuxeo-showcase-content-resources",
          "org.nuxeo.ecm.platform.oauth",
          "org.nuxeo.ecm.platform.pdf",
          "org.nuxeo.ecm.platform.preview",
          "org.nuxeo.ecm.platform.preview.jsf",
          "org.nuxeo.ecm.platform.rendering",
          "org.nuxeo.ecm.platform.restapi.io",
          "org.nuxeo.ecm.platform.restapi.server",
          "org.nuxeo.ecm.platform.restapi.server.login.tokenauth",
          "org.nuxeo.ecm.platform.restapi.server.search",
          "org.nuxeo.ecm.platform.spreadsheet.core",
          "org.nuxeo.ecm.platform.spreadsheet.jsf",
          "org.nuxeo.ecm.platform.spreadsheet.web",
          "org.nuxeo.ecm.platform.spreadsheet.web-ui",
          "org.nuxeo.ecm.platform.suggestbox.core",
          "org.nuxeo.ecm.platform.suggestbox.jsf",
          "org.nuxeo.ecm.platform.thumbnail",
          "org.nuxeo.ecm.platform.ui",
          "org.nuxeo.ecm.platform.ui.select2",
          "org.nuxeo.ecm.platform.uidgen.core",
          "org.nuxeo.ecm.platform.web.common",
          "org.nuxeo.ecm.platform.webapp.types",
          "org.nuxeo.ecm.platform.ws",
          "org.nuxeo.ecm.platform.ws.sun.jaxws",
          "org.nuxeo.ecm.user.center",
          "org.nuxeo.ecm.user.center.dashboard",
          "org.nuxeo.ecm.user.center.dashboard.jsf",
          "org.nuxeo.ecm.user.center.notification",
          "org.nuxeo.ecm.user.center.oauth",
          "org.nuxeo.ecm.user.center.profile",
          "org.nuxeo.ecm.user.center.profile.jsf",
          "org.nuxeo.ecm.user.invite",
          "org.nuxeo.ecm.user.registration",
          "org.nuxeo.ecm.user.registration.web",
          "org.nuxeo.ecm.webapp.base",
          "org.nuxeo.ecm.webapp.core",
          "org.nuxeo.ecm.webapp.ui",
          "org.nuxeo.ecm.webdav",
          "org.nuxeo.importer.stream",
          "org.nuxeo.mongodb.audit",
          "org.nuxeo.platform.virtualnavigation.types",
          "org.nuxeo.platform.virtualnavigation.web",
          "org.nuxeo.search.ui",
          "org.nuxeo.usermapper"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.platform",
        "id": "grp:org.nuxeo.ecm.platform",
        "name": "org.nuxeo.ecm.platform",
        "parentIds": [],
        "readmes": [],
        "version": "9.10"
      },
      "bundleId": "org.nuxeo.ecm.platform.htmlsanitizer",
      "components": [
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService--sanitizer",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.htmlsanitizer/org.nuxeo.ecm.platform.htmlsanitizer.config/Contributions/org.nuxeo.ecm.platform.htmlsanitizer.config--sanitizer",
              "id": "org.nuxeo.ecm.platform.htmlsanitizer.config--sanitizer",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService",
                "name": "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService",
                "type": "service"
              },
              "version": "9.10",
              "xml": "<extension point=\"sanitizer\" target=\"org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService\">\n    <sanitizer name=\"default\">\n      <!-- <field>dc:description</field> -->\n      <field filter=\"mime_type\" filterValue=\"text/plain,text/x-web-markdown\" sanitize=\"false\">note</field>\n      <field>webc:welcomeText</field>\n      <field filter=\"webp:isRichtext\" filterValue=\"true\">webp:content</field>\n      <field>comment:text</field>\n      <!-- <field>post:text</field> -->\n    </sanitizer>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService--antisamy",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.htmlsanitizer/org.nuxeo.ecm.platform.htmlsanitizer.config/Contributions/org.nuxeo.ecm.platform.htmlsanitizer.config--antisamy",
              "id": "org.nuxeo.ecm.platform.htmlsanitizer.config--antisamy",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService",
                "name": "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService",
                "type": "service"
              },
              "version": "9.10",
              "xml": "<extension point=\"antisamy\" target=\"org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService\">\n    <antisamy policy=\"antisamy-nuxeo-policy.xml\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.htmlsanitizer/org.nuxeo.ecm.platform.htmlsanitizer.config",
          "name": "org.nuxeo.ecm.platform.htmlsanitizer.config",
          "requirements": [],
          "services": [],
          "version": "9.10",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.htmlsanitizer.config\"\n  version=\"1.0.0\">\n\n  <extension target=\"org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService\"\n    point=\"antisamy\">\n    <antisamy policy=\"antisamy-nuxeo-policy.xml\" />\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService\"\n    point=\"sanitizer\">\n    <sanitizer name=\"default\">\n      <!-- <field>dc:description</field> -->\n      <field filter=\"mime_type\" filterValue=\"text/plain,text/x-web-markdown\" sanitize=\"false\">note</field>\n      <field>webc:welcomeText</field>\n      <field filter=\"webp:isRichtext\" filterValue=\"true\">webp:content</field>\n      <field>comment:text</field>\n      <!-- <field>post:text</field> -->\n    </sanitizer>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/htmlsanitizer-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerServiceImpl",
          "documentation": "\n    The HTML Sanitizer Service sanitizes some HTML fields\n    to remove potential cross-site scripting attack in them.\n\n    @author Florent Guillaume\n  \n",
          "documentationHtml": "<p>\nThe HTML Sanitizer Service sanitizes some HTML fields\nto remove potential cross-site scripting attack in them.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService",
              "descriptors": [
                "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerAntiSamyDescriptor"
              ],
              "documentation": "\n      The following allows you to change the AntiSamy policy file:\n\n      <code>\n    <antisamy policy=\"some-file.xml\"/>\n</code>\n",
              "documentationHtml": "<p>\nThe following allows you to change the AntiSamy policy file:\n</p><p>\n</p><pre><code>    &lt;antisamy policy&#61;&#34;some-file.xml&#34;/&gt;\n</code></pre><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.htmlsanitizer/org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService/ExtensionPoints/org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService--antisamy",
              "id": "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService--antisamy",
              "label": "antisamy (org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService)",
              "name": "antisamy",
              "version": "9.10"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService",
              "descriptors": [
                "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerDescriptor"
              ],
              "documentation": "\n      Specify the types of documents and fields to sanitize.\n\n      The following example configures just based on field\n      names:\n\n      <code>\n    <sanitizer name=\"foo\">\n        <field>note</field>\n        <field>comment:text</field>\n    </sanitizer>\n</code>\n\n\n      The following specifies that only the note field of the Note type\n      will be sanitized:\n\n      <code>\n    <sanitizer name=\"foo\">\n        <type>Note</type>\n        <field>note</field>\n    </sanitizer>\n</code>\n\n\n      The following example disables a sanitizer:\n\n      <code>\n    <sanitizer enabled=\"false\" name=\"default\"/>\n</code>\n\n\n      Sanitizing can also be enabled on a field only if a field has a given value.\n      This is useful when the same document field can contain text, html or wiki markup.\n      For a webpage, you may want to only sanitize the webpages that are using HTML.\n      Here is an example configuration.\n\n     <code>\n    <sanitizer name=\"foo\">\n        <field filter=\"webp:isRichtext\" filterValue=\"true\">webp:content</field>\n    </sanitizer>\n</code>\n\n\n     In this example the field webp:content will be sanitized only when\n     the String representation of the webp:isRichtext is \"true\".\n\n     If you want to <em>not</em>\n sanitize when a given value is present, use:\n\n     <code>\n    <sanitizer name=\"foo\">\n        <field filter=\"mime_type\" filterValue=\"text/plain\" sanitize=\"false\">note</field>\n    </sanitizer>\n</code>\n",
              "documentationHtml": "<p>\nSpecify the types of documents and fields to sanitize.\n</p><p>\nThe following example configures just based on field\nnames:\n</p><p>\n</p><pre><code>    &lt;sanitizer name&#61;&#34;foo&#34;&gt;\n        &lt;field&gt;note&lt;/field&gt;\n        &lt;field&gt;comment:text&lt;/field&gt;\n    &lt;/sanitizer&gt;\n</code></pre><p>\nThe following specifies that only the note field of the Note type\nwill be sanitized:\n</p><p>\n</p><pre><code>    &lt;sanitizer name&#61;&#34;foo&#34;&gt;\n        &lt;type&gt;Note&lt;/type&gt;\n        &lt;field&gt;note&lt;/field&gt;\n    &lt;/sanitizer&gt;\n</code></pre><p>\nThe following example disables a sanitizer:\n</p><p>\n</p><pre><code>    &lt;sanitizer enabled&#61;&#34;false&#34; name&#61;&#34;default&#34;/&gt;\n</code></pre><p>\nSanitizing can also be enabled on a field only if a field has a given value.\nThis is useful when the same document field can contain text, html or wiki markup.\nFor a webpage, you may want to only sanitize the webpages that are using HTML.\nHere is an example configuration.\n</p><p>\n</p><pre><code>    &lt;sanitizer name&#61;&#34;foo&#34;&gt;\n        &lt;field filter&#61;&#34;webp:isRichtext&#34; filterValue&#61;&#34;true&#34;&gt;webp:content&lt;/field&gt;\n    &lt;/sanitizer&gt;\n</code></pre><p>\nIn this example the field webp:content will be sanitized only when\nthe String representation of the webp:isRichtext is &#34;true&#34;.\n</p><p>\nIf you want to <em>not</em>\nsanitize when a given value is present, use:\n</p><p>\n</p><pre><code>    &lt;sanitizer name&#61;&#34;foo&#34;&gt;\n        &lt;field filter&#61;&#34;mime_type&#34; filterValue&#61;&#34;text/plain&#34; sanitize&#61;&#34;false&#34;&gt;note&lt;/field&gt;\n    &lt;/sanitizer&gt;\n</code></pre><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.htmlsanitizer/org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService/ExtensionPoints/org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService--sanitizer",
              "id": "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService--sanitizer",
              "label": "sanitizer (org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService)",
              "name": "sanitizer",
              "version": "9.10"
            }
          ],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.event.EventServiceComponent--listener",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.htmlsanitizer/org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService/Contributions/org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService--listener",
              "id": "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService--listener",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.event.EventServiceComponent",
                "name": "org.nuxeo.ecm.core.event.EventServiceComponent",
                "type": "service"
              },
              "version": "9.10",
              "xml": "<extension point=\"listener\" target=\"org.nuxeo.ecm.core.event.EventServiceComponent\">\n    <description>\n      Listener that runs (very early) the HTML Sanitizer.\n    </description>\n    <listener async=\"false\" class=\"org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerListener\" name=\"htmlsanitizerlistener\" postCommit=\"false\" priority=\"-10\">\n    </listener>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.htmlsanitizer/org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService",
          "name": "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService",
          "requirements": [],
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.htmlsanitizer/org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService/Services/org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService",
              "id": "org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService",
              "overriden": false,
              "version": "9.10"
            }
          ],
          "version": "9.10",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService\"\n  version=\"1.0.0\">\n\n  <documentation>\n    The HTML Sanitizer Service sanitizes some HTML fields\n    to remove potential cross-site scripting attack in them.\n\n    @author Florent Guillaume\n  </documentation>\n\n  <implementation\n    class=\"org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerServiceImpl\" />\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerService\" />\n  </service>\n\n  <extension-point name=\"sanitizer\">\n    <documentation>\n      Specify the types of documents and fields to sanitize.\n\n      The following example configures just based on field\n      names:\n\n      <code>\n        <sanitizer name=\"foo\">\n          <field>note</field>\n          <field>comment:text</field>\n        </sanitizer>\n      </code>\n\n      The following specifies that only the note field of the Note type\n      will be sanitized:\n\n      <code>\n        <sanitizer name=\"foo\">\n          <type>Note</type>\n          <field>note</field>\n        </sanitizer>\n      </code>\n\n      The following example disables a sanitizer:\n\n      <code>\n        <sanitizer name=\"default\" enabled=\"false\" />\n      </code>\n\n      Sanitizing can also be enabled on a field only if a field has a given value.\n      This is useful when the same document field can contain text, html or wiki markup.\n      For a webpage, you may want to only sanitize the webpages that are using HTML.\n      Here is an example configuration.\n\n     <code>\n       <sanitizer name=\"foo\">\n         <field filter=\"webp:isRichtext\" filterValue=\"true\">webp:content</field>\n       </sanitizer>\n     </code>\n\n     In this example the field webp:content will be sanitized only when\n     the String representation of the webp:isRichtext is \"true\".\n\n     If you want to <em>not</em> sanitize when a given value is present, use:\n\n     <code>\n       <sanitizer name=\"foo\">\n         <field filter=\"mime_type\" filterValue=\"text/plain\" sanitize=\"false\">note</field>\n       </sanitizer>\n     </code>\n\n    </documentation>\n    <object\n      class=\"org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerDescriptor\" />\n  </extension-point>\n\n  <extension-point name=\"antisamy\">\n    <documentation>\n      The following allows you to change the AntiSamy policy file:\n\n      <code>\n        <antisamy policy=\"some-file.xml\"/>\n      </code>\n    </documentation>\n    <object\n      class=\"org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerAntiSamyDescriptor\" />\n  </extension-point>\n\n  <extension target=\"org.nuxeo.ecm.core.event.EventServiceComponent\"\n    point=\"listener\">\n    <description>\n      Listener that runs (very early) the HTML Sanitizer.\n    </description>\n    <listener name=\"htmlsanitizerlistener\"\n      class=\"org.nuxeo.ecm.platform.htmlsanitizer.HtmlSanitizerListener\"\n      postCommit=\"false\" async=\"false\" priority=\"-10\">\n    </listener>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/htmlsanitizer-service.xml",
          "xmlPureComponent": false
        }
      ],
      "fileName": "nuxeo-platform-htmlsanitizer-9.10.jar",
      "groupId": "org.nuxeo.ecm.platform",
      "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.htmlsanitizer",
      "id": "org.nuxeo.ecm.platform.htmlsanitizer",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: 1.6.0_20 (Sun Microsystems Inc.)\r\nBuilt-By: jenkins\r\nBuild-Jdk: 1.8.0_77\r\nBundle-ManifestVersion: 2\r\nBundle-Version: 0.0.0.SNAPSHOT\r\nExport-Package: org.nuxeo.ecm.platform.htmlsanitizer\r\nPrivate-Package: .\r\nBundle-ActivationPolicy: lazy\r\nBundle-ClassPath: .\r\nBundle-Name: Nuxeo HTML Sanitizer Service\r\nBundle-Localization: plugin\r\nBundle-RequiredExecutionEnvironment: JavaSE-1.6\r\nBundle-Vendor: Nuxeo\r\nNuxeo-Component: OSGI-INF/htmlsanitizer-service.xml,OSGI-INF/htmlsanit\r\n izer-contrib.xml\r\nImport-Package: org.apache.commons.logging,org.nuxeo.common.xmap.annot\r\n ation,org.nuxeo.ecm.core;api=split,org.nuxeo.ecm.core.api;api=split,o\r\n rg.nuxeo.ecm.core.api.event,org.nuxeo.ecm.core.api.model,org.nuxeo.ec\r\n m.core.event,org.nuxeo.ecm.core.event.impl,org.nuxeo.ecm.core.schema,\r\n org.nuxeo.runtime.api,org.nuxeo.runtime.model,org.owasp.validator.html\r\nBundle-SymbolicName: org.nuxeo.ecm.platform.htmlsanitizer\r\n\r\n",
      "packages": [],
      "requirements": [],
      "version": "9.10"
    }
  ],
  "creationDate": 1664793304638,
  "key": "Nuxeo Platform LTS 2017-9.10",
  "name": "Nuxeo Platform LTS 2017",
  "operations": [],
  "packages": [],
  "pluginSnapshots": {},
  "releaseDate": 1515474000000,
  "version": "9.10"
}